''' Create PT Practice #6 Simon Memory Game with beeps Programmer: Jill Jones Date: November, 2023 ''' from codex import * from time import sleep import random delay = 1.0 sequence = [] def intro(): display.print("Intro") display.print("Welcome to the ") display.print("Simon Memory Game") display.print("Use L, R, A, B") sleep(1) def ending(): display.clear() display.print("Ending") display.print("Thank you for") display.print("playing") def get_tone(pixel): if pixel == 0: pitch = 800 elif pixel == 1: pitch = 1200 elif pixel == 2: pitch = 1700 else: pitch = 2300 return pitch def get_color(pixel): if pixel == 0: col = RED elif pixel == 1: col = BLUE elif pixel == 2: col = GREEN else: col = YELLOW return col def simon_turn(): audio.set_volume(100) display.clear() display.draw_text("Simon's turn", x=20, y=100, scale=3, color=GREEN) pixel = random.randrange(4) sequence.append(pixel) for i in range(len(sequence)): pix = sequence[i] tone = get_tone(pix) col = get_color(pix) pixels.set(pix, col) audio.pitch(tone, delay) pixels.set(pix, BLACK) sleep(delay/2) def get_guess(): while True: if buttons.was_pressed(BTN_L): guess = 0 break if buttons.was_pressed(BTN_R): guess = 1 break if buttons.was_pressed(BTN_A): guess = 2 break if buttons.was_pressed(BTN_B): guess = 3 break return guess def your_turn(): global correct_guess display.clear() display.draw_text("Your turn", x=20, y=100, scale=3, color=BLUE) for item in sequence: guess = get_guess() if guess == item: tone = get_tone(guess) col = get_color(guess) pixels.set(guess, col) audio.pitch(tone, delay/2) pixels.set(guess, BLACK) else: display.fill(CYAN) audio.pitch(400, delay*2) correct_guess = False break def play_again(): global continues, sequence display.clear() display.print("Play Again?") display.print("A = Yes") display.print("B = No") while True: if buttons.was_pressed(BTN_A): sequence = [] break if buttons.was_pressed(BTN_B): continues = False break # Main Program audio.enable_audio_amp(True) intro() continues = True while continues: correct_guess = True while correct_guess: simon_turn() your_turn() sleep(1) play_again() ending() pixels.set(0, GREEN) sleep(delay) pixels.set(0, GREEN) audio.pitch(1200, delay)